;(function ($){ $.flexslider=function(el, options){ var slider=$(el), vars=$.extend({}, $.flexslider.defaults, options), namespace=vars.namespace, touch=("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch, eventType=(touch) ? "touchend":"click", vertical=vars.direction==="vertical", reverse=vars.reverse, carousel=(vars.itemWidth > 0), fade=vars.animation==="fade", asNav=vars.asNavFor!=="", methods={}; $.data(el, "flexslider", slider); methods={ init: function(){ slider.animating=false; slider.currentSlide=vars.startAt; slider.animatingTo=slider.currentSlide; slider.atEnd=(slider.currentSlide===0||slider.currentSlide===slider.last); slider.containerSelector=vars.selector.substr(0,vars.selector.search(' ')); slider.slides=$(vars.selector, slider); slider.container=$(slider.containerSelector, slider); slider.count=slider.slides.length; slider.syncExists=$(vars.sync).length > 0; if(vars.animation==="slide") vars.animation="swing"; slider.prop=(vertical) ? "top":"marginLeft"; slider.args={}; slider.manualPause=false; slider.transitions = !vars.video&&!fade&&vars.useCSS&&(function(){ var obj=document.createElement('div'), props=['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; for (var i in props){ if(obj.style[ props[i] ]!==undefined){ slider.pfx=props[i].replace('Perspective','').toLowerCase(); slider.prop="-" + slider.pfx + "-transform"; return true; }} return false; }()); if(vars.controlsContainer!=="") slider.controlsContainer=$(vars.controlsContainer).length > 0&&$(vars.controlsContainer); if(vars.manualControls!=="") slider.manualControls=$(vars.manualControls).length > 0&&$(vars.manualControls); if(vars.randomize){ slider.slides.sort(function(){ return (Math.round(Math.random())-0.5); }); slider.container.empty().append(slider.slides); } slider.doMath(); if(asNav) methods.asNav.setup(); slider.setup("init"); if(vars.controlNav) methods.controlNav.setup(); if(vars.directionNav) methods.directionNav.setup(); if(vars.keyboard&&($(slider.containerSelector).length===1||vars.multipleKeyboard)){ $(document).bind('keyup', function(event){ var keycode=event.keyCode; if(!slider.animating&&(keycode===39||keycode===37)){ var target=(keycode===39) ? slider.getTarget('next') : (keycode===37) ? slider.getTarget('prev'):false; slider.flexAnimate(target, vars.pauseOnAction); }}); } if(vars.mousewheel){ slider.bind('mousewheel', function(event, delta, deltaX, deltaY){ event.preventDefault(); var target=(delta < 0) ? slider.getTarget('next'):slider.getTarget('prev'); slider.flexAnimate(target, vars.pauseOnAction); }); } if(vars.pausePlay) methods.pausePlay.setup(); if(vars.slideshow){ if(vars.pauseOnHover){ slider.hover(function(){ slider.pause(); }, function(){ if(!slider.manualPause) slider.play(); }); } (vars.initDelay > 0) ? setTimeout(slider.play, vars.initDelay):slider.play(); } if(touch&&vars.touch) methods.touch(); if(!fade||(fade&&vars.smoothHeight)) $(window).bind("resize focus", methods.resize); setTimeout(function(){ vars.start(slider); }, 200); }, asNav: { setup: function(){ slider.asNav=true; slider.animatingTo=Math.floor(slider.currentSlide/slider.move); slider.currentItem=slider.currentSlide; slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide"); slider.slides.click(function(e){ e.preventDefault(); var $slide=$(this), target=$slide.index(); if(!$(vars.asNavFor).data('flexslider').animating&&!$slide.hasClass('active')){ slider.direction=(slider.currentItem < target) ? "next":"prev"; slider.flexAnimate(target, vars.pauseOnAction, false, true, true); }}); }}, controlNav: { setup: function(){ if(!slider.manualControls){ methods.controlNav.setupPaging(); }else{ methods.controlNav.setupManual(); }}, setupPaging: function(){ var type=(vars.controlNav==="thumbnails") ? 'control-thumbs':'control-paging', j=1, item; slider.controlNavScaffold=$('
    '); if(slider.pagingCount > 1){ for (var i=0; i < slider.pagingCount; i++){ item=(vars.controlNav==="thumbnails") ? '':'' + j + ''; slider.controlNavScaffold.append('
  1. ' + item + '
  2. '); j++; }} (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold):slider.append(slider.controlNavScaffold); methods.controlNav.set(); methods.controlNav.active(); slider.controlNavScaffold.delegate('a, img', eventType, function(event){ event.preventDefault(); var $this=$(this), target=slider.controlNav.index($this); if(!$this.hasClass(namespace + 'active')){ slider.direction=(target > slider.currentSlide) ? "next":"prev"; slider.flexAnimate(target, vars.pauseOnAction); }}); if(touch){ slider.controlNavScaffold.delegate('a', "click touchstart", function(event){ event.preventDefault(); }); }}, setupManual: function(){ slider.controlNav=slider.manualControls; methods.controlNav.active(); slider.controlNav.live(eventType, function(event){ event.preventDefault(); var $this=$(this), target=slider.controlNav.index($this); if(!$this.hasClass(namespace + 'active')){ (target > slider.currentSlide) ? slider.direction="next":slider.direction="prev"; slider.flexAnimate(target, vars.pauseOnAction); }}); if(touch){ slider.controlNav.live("click touchstart", function(event){ event.preventDefault(); }); }}, set: function(){ var selector=(vars.controlNav==="thumbnails") ? 'img':'a'; slider.controlNav=$('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer:slider); }, active: function(){ slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active"); }, update: function(action, pos){ if(slider.pagingCount > 1&&action==="add"){ slider.controlNavScaffold.append($('
  3. ' + slider.count + '
  4. ')); }else if(slider.pagingCount===1){ slider.controlNavScaffold.find('li').remove(); }else{ slider.controlNav.eq(pos).closest('li').remove(); } methods.controlNav.set(); (slider.pagingCount > 1&&slider.pagingCount!==slider.controlNav.length) ? slider.update(pos, action):methods.controlNav.active(); }}, directionNav: { setup: function(){ var directionNavScaffold=$(''); if(slider.controlsContainer){ $(slider.controlsContainer).append(directionNavScaffold); slider.directionNav=$('.' + namespace + 'direction-nav li a', slider.controlsContainer); }else{ slider.append(directionNavScaffold); slider.directionNav=$('.' + namespace + 'direction-nav li a', slider); } methods.directionNav.update(); slider.directionNav.bind(eventType, function(event){ event.preventDefault(); var target=($(this).hasClass(namespace + 'next')) ? slider.getTarget('next'):slider.getTarget('prev'); slider.flexAnimate(target, vars.pauseOnAction); }); if(touch){ slider.directionNav.bind("click touchstart", function(event){ event.preventDefault(); }); }}, update: function(){ var disabledClass=namespace + 'disabled'; if(!vars.animationLoop){ if(slider.pagingCount===1){ slider.directionNav.addClass(disabledClass); }else if(slider.animatingTo===0){ slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass); }else if(slider.animatingTo===slider.last){ slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass); }else{ slider.directionNav.removeClass(disabledClass); }} }}, pausePlay: { setup: function(){ var pausePlayScaffold=$('
    '); if(slider.controlsContainer){ slider.controlsContainer.append(pausePlayScaffold); slider.pausePlay=$('.' + namespace + 'pauseplay a', slider.controlsContainer); }else{ slider.append(pausePlayScaffold); slider.pausePlay=$('.' + namespace + 'pauseplay a', slider); } methods.pausePlay.update((vars.slideshow) ? namespace + 'pause':namespace + 'play'); slider.pausePlay.bind(eventType, function(event){ event.preventDefault(); if($(this).hasClass(namespace + 'pause')){ slider.pause(); slider.manualPause=true; }else{ slider.play(); slider.manualPause=false; }}); if(touch){ slider.pausePlay.bind("click touchstart", function(event){ event.preventDefault(); }); }}, update: function(state){ (state==="play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').text(vars.playText):slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').text(vars.pauseText); }}, touch: function(){ var startX, startY, offset, cwidth, dx, startT, scrolling=false; el.addEventListener('touchstart', onTouchStart, false); function onTouchStart(e){ if(slider.animating){ e.preventDefault(); }else if(e.touches.length===1){ slider.pause(); cwidth=(vertical) ? slider.h:slider. w; startT=Number(new Date()); offset=(carousel&&reverse&&slider.animatingTo===slider.last) ? 0 : (carousel&&reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) : (carousel&&slider.currentSlide===slider.last) ? slider.limit : (carousel) ? ((slider.itemW + vars.itemMargin) * slider.move) * slider.currentSlide : (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth:(slider.currentSlide + slider.cloneOffset) * cwidth; startX=(vertical) ? e.touches[0].pageY:e.touches[0].pageX; startY=(vertical) ? e.touches[0].pageX:e.touches[0].pageY; el.addEventListener('touchmove', onTouchMove, false); el.addEventListener('touchend', onTouchEnd, false); }} function onTouchMove(e){ dx=(vertical) ? startX - e.touches[0].pageY:startX - e.touches[0].pageX; scrolling=(vertical) ? (Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)):(Math.abs(dx) < Math.abs(e.touches[0].pageY - startY)); if(!scrolling||Number(new Date()) - startT > 500){ e.preventDefault(); if(!fade&&slider.transitions){ if(!vars.animationLoop){ dx=dx/((slider.currentSlide===0&&dx < 0||slider.currentSlide===slider.last&&dx > 0) ? (Math.abs(dx)/cwidth+2):1); } slider.setProps(offset + dx, "setTouch"); }} } function onTouchEnd(e){ if(slider.animatingTo===slider.currentSlide&&!scrolling&&!(dx===null)){ var updateDx=(reverse) ? -dx:dx, target=(updateDx > 0) ? slider.getTarget('next'):slider.getTarget('prev'); if(slider.canAdvance(target)&&(Number(new Date()) - startT < 550&&Math.abs(updateDx) > 20||Math.abs(updateDx) > cwidth/2)){ slider.flexAnimate(target, vars.pauseOnAction); }else{ slider.flexAnimate(slider.currentSlide, vars.pauseOnAction, true); }} el.removeEventListener('touchmove', onTouchMove, false); el.removeEventListener('touchend', onTouchEnd, false); startX=null; startY=null; dx=null; offset=null; }}, resize: function(){ if(!slider.animating&&slider.is(':visible')){ if(!carousel) slider.doMath(); if(fade){ methods.smoothHeight(); }else if(carousel){ slider.slides.width(slider.computedW); slider.update(slider.pagingCount); slider.setProps(); } else if(vertical){ slider.viewport.height(slider.h); slider.setProps(slider.h, "setTotal"); }else{ if(vars.smoothHeight) methods.smoothHeight(); slider.newSlides.width(slider.computedW); slider.setProps(slider.computedW, "setTotal"); }} }, smoothHeight: function(dur){ if(!vertical||fade){ var $obj=(fade) ? slider:slider.viewport; (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur):$obj.height(slider.slides.eq(slider.animatingTo).height()); }}, sync: function(action){ var $obj=$(vars.sync).data("flexslider"), target=slider.animatingTo; switch (action){ case "animate": $obj.flexAnimate(target, vars.pauseOnAction, false, true); break; case "play": if(!$obj.playing&&!$obj.asNav){ $obj.play(); } break; case "pause": $obj.pause(); break; }} } slider.flexAnimate=function(target, pause, override, withSync, fromNav){ if(!slider.animating&&(slider.canAdvance(target)||override)&&slider.is(":visible")){ if(asNav&&withSync){ var master=$(vars.asNavFor).data('flexslider'); slider.atEnd=target===0||target===slider.count - 1; master.flexAnimate(target, true, false, true, fromNav); slider.direction=(slider.currentItem < target) ? "next":"prev"; master.direction=slider.direction; if(Math.ceil((target + 1)/slider.visible) - 1!==slider.currentSlide&&target!==0){ slider.currentItem=target; slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); target=Math.floor(target/slider.visible); }else{ slider.currentItem=target; slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); return false; }} slider.animating=true; slider.animatingTo=target; vars.before(slider); if(pause) slider.pause(); if(slider.syncExists&&!fromNav) methods.sync("animate"); if(vars.controlNav) methods.controlNav.active(); if(!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); slider.atEnd=target===0||target===slider.last; if(vars.directionNav) methods.directionNav.update(); if(target===slider.last){ vars.end(slider); if(!vars.animationLoop) slider.pause(); } if(!fade){ var dimension=(vertical) ? slider.slides.filter(':first').height():slider.computedW, margin, slideString, calcNext; if(carousel){ margin=(vars.itemWidth > slider.w) ? vars.itemMargin * 2:vars.itemMargin; calcNext=((slider.itemW + margin) * slider.move) * slider.animatingTo; slideString=(calcNext > slider.limit&&slider.visible!==1) ? slider.limit:calcNext; }else if(slider.currentSlide===0&&target===slider.count - 1&&vars.animationLoop&&slider.direction!=="next"){ slideString=(reverse) ? (slider.count + slider.cloneOffset) * dimension:0; }else if(slider.currentSlide===slider.last&&target===0&&vars.animationLoop&&slider.direction!=="prev"){ slideString=(reverse) ? 0:(slider.count + 1) * dimension; }else{ slideString=(reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension:(target + slider.cloneOffset) * dimension; } slider.setProps(slideString, "", vars.animationSpeed); if(slider.transitions){ if(!vars.animationLoop||!slider.atEnd){ slider.animating=false; slider.currentSlide=slider.animatingTo; } slider.container.unbind("webkitTransitionEnd transitionend"); slider.container.bind("webkitTransitionEnd transitionend", function(){ slider.wrapup(dimension); }); }else{ slider.container.animate(slider.args, vars.animationSpeed, vars.easing, function(){ slider.wrapup(dimension); }); }}else{ slider.slides.eq(slider.currentSlide).fadeOut(vars.animationSpeed, vars.easing); slider.slides.eq(target).fadeIn(vars.animationSpeed, vars.easing, slider.wrapup); } if(vars.smoothHeight) methods.smoothHeight(vars.animationSpeed); }} slider.wrapup=function(dimension){ if(!fade&&!carousel){ if(slider.currentSlide===0&&slider.animatingTo===slider.last&&vars.animationLoop){ slider.setProps(dimension, "jumpEnd"); }else if(slider.currentSlide===slider.last&&slider.animatingTo===0&&vars.animationLoop){ slider.setProps(dimension, "jumpStart"); }} slider.animating=false; slider.currentSlide=slider.animatingTo; vars.after(slider); } slider.animateSlides=function(){ if(!slider.animating) slider.flexAnimate(slider.getTarget("next")); } slider.pause=function(){ clearInterval(slider.animatedSlides); slider.playing=false; if(vars.pausePlay) methods.pausePlay.update("play"); if(slider.syncExists) methods.sync("pause"); } slider.play=function(){ slider.animatedSlides=setInterval(slider.animateSlides, vars.slideshowSpeed); slider.playing=true; if(vars.pausePlay) methods.pausePlay.update("pause"); if(slider.syncExists) methods.sync("play"); } slider.canAdvance=function(target){ var last=(asNav) ? slider.pagingCount - 1:slider.last; return (asNav&&slider.currentItem===0&&target===slider.pagingCount - 1&&slider.direction!=="next") ? false : (target===slider.currentSlide&&!asNav) ? false : (vars.animationLoop) ? true : (slider.atEnd&&slider.currentSlide===0&&target===last&&slider.direction!=="next") ? false : (slider.atEnd&&slider.currentSlide===last&&target===0&&slider.direction==="next") ? false : true; } slider.getTarget=function(dir){ slider.direction=dir; if(dir==="next"){ return (slider.currentSlide===slider.last) ? 0:slider.currentSlide + 1; }else{ return (slider.currentSlide===0) ? slider.last:slider.currentSlide - 1; }} slider.setProps=function(pos, special, dur){ var target=(function(){ var posCheck=(pos) ? pos:((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo, posCalc=(function(){ if(carousel){ return (special==="setTouch") ? pos : (reverse&&slider.animatingTo===slider.last) ? 0 : (reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) : (slider.animatingTo===slider.last) ? slider.limit:posCheck; }else{ switch (special){ case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos:(slider.currentSlide + slider.cloneOffset) * pos; case "setTouch": return (reverse) ? pos:pos; case "jumpEnd": return (reverse) ? pos:slider.count * pos; case "jumpStart": return (reverse) ? slider.count * pos:pos; default: return pos; }} }()); return (posCalc * -1) + "px"; }()); if(slider.transitions){ target=(vertical) ? "translate3d(0," + target + ",0)":"translate3d(" + target + ",0,0)"; dur=(dur!==undefined) ? (dur/1000) + "s":"0s"; slider.container.css("-" + slider.pfx + "-transition-duration", dur); } slider.args[slider.prop]=target; if(slider.transitions||dur===undefined) slider.container.css(slider.args); } slider.setup=function(type){ if(!fade){ var sliderOffset, arr; if(type==="init"){ slider.viewport=$('
    ').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container); slider.cloneCount=0; slider.cloneOffset=0; if(reverse){ arr=$.makeArray(slider.slides).reverse(); slider.slides=$(arr); slider.container.empty().append(slider.slides); }} if(vars.animationLoop&&!carousel){ slider.cloneCount=2; slider.cloneOffset=1; if(type!=="init") slider.container.find('.clone').remove(); slider.container.append(slider.slides.first().clone().addClass('clone')).prepend(slider.slides.last().clone().addClass('clone')); } slider.newSlides=$(vars.selector, slider); sliderOffset=(reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset:slider.currentSlide + slider.cloneOffset; if(vertical&&!carousel){ slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%"); setTimeout(function(){ slider.newSlides.css({"display": "block"}); slider.doMath(); slider.viewport.height(slider.h); slider.setProps(sliderOffset * slider.h, "init"); }, (type==="init") ? 100:0); }else{ slider.container.width((slider.count + slider.cloneCount) * 200 + "%"); slider.setProps(sliderOffset * slider.computedW, "init"); setTimeout(function(){ slider.doMath(); slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"}); if(vars.smoothHeight) methods.smoothHeight(); }, (type==="init") ? 100:0); }}else{ slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"}); if(type==="init") slider.slides.eq(slider.currentSlide).fadeIn(vars.animationSpeed, vars.easing); if(vars.smoothHeight) methods.smoothHeight(); } if(!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); } slider.doMath=function(){ var slide=slider.slides.first(), slideMargin=vars.itemMargin, minItems=vars.minItems, maxItems=vars.maxItems; slider.w=slider.width(); slider.h=slide.height(); slider.boxPadding=slide.outerWidth() - slide.width(); if(carousel){ slider.itemT=vars.itemWidth + slideMargin; slider.minW=(minItems) ? minItems * slider.itemT:slider.w; slider.maxW=(maxItems) ? maxItems * slider.itemT:slider.w; slider.itemW=(slider.minW > slider.w) ? (slider.w - (slideMargin * minItems))/minItems : (slider.maxW < slider.w) ? (slider.w - (slideMargin * maxItems))/maxItems : (vars.itemWidth > slider.w) ? slider.w:vars.itemWidth; slider.visible=Math.floor(slider.w/(slider.itemW + slideMargin)); slider.move=(vars.move > 0&&vars.move < slider.visible) ? vars.move:slider.visible; slider.pagingCount=Math.ceil(((slider.count - slider.visible)/slider.move) + 1); slider.last=slider.pagingCount - 1; slider.limit=(slider.pagingCount===1) ? 0 : (vars.itemWidth > slider.w) ? ((slider.itemW + (slideMargin * 2)) * slider.count) - slider.w - slideMargin:((slider.itemW + slideMargin) * slider.count) - slider.w; }else{ slider.itemW=slider.w; slider.pagingCount=slider.count; slider.last=slider.count - 1; } slider.computedW=slider.itemW - slider.boxPadding; } slider.update=function(pos, action){ slider.doMath(); if(!carousel){ if(pos < slider.currentSlide){ slider.currentSlide +=1; }else if(pos <=slider.currentSlide&&pos!==0){ slider.currentSlide -=1; } slider.animatingTo=slider.currentSlide; } if(vars.controlNav&&!slider.manualControls){ if((action==="add"&&!carousel)||slider.pagingCount > slider.controlNav.length){ methods.controlNav.update("add"); }else if((action==="remove"&&!carousel)||slider.pagingCount < slider.controlNav.length){ if(carousel&&slider.currentSlide > slider.last){ slider.currentSlide -=1; slider.animatingTo -=1; } methods.controlNav.update("remove", slider.last); }} if(vars.directionNav) methods.directionNav.update(); } slider.addSlide=function(obj, pos){ var $obj=$(obj); slider.count +=1; slider.last=slider.count - 1; if(vertical&&reverse){ (pos!==undefined) ? slider.slides.eq(slider.count - pos).after($obj):slider.container.prepend($obj); }else{ (pos!==undefined) ? slider.slides.eq(pos).before($obj):slider.container.append($obj); } slider.update(pos, "add"); slider.slides=$(vars.selector + ':not(.clone)', slider); slider.setup(); vars.added(slider); } slider.removeSlide=function(obj){ var pos=(isNaN(obj)) ? slider.slides.index($(obj)):obj; slider.count -=1; slider.last=slider.count - 1; if(isNaN(obj)){ $(obj, slider.slides).remove(); }else{ (vertical&&reverse) ? slider.slides.eq(slider.last).remove():slider.slides.eq(obj).remove(); } slider.doMath(); slider.update(pos, "remove"); slider.slides=$(vars.selector + ':not(.clone)', slider); slider.setup(); vars.removed(slider); } methods.init(); } $.flexslider.defaults={ namespace: "flex-", selector: ".slides > li", animation: "fade", easing: "swing", direction: "horizontal", reverse: false, animationLoop: true, smoothHeight: false, startAt: 0, slideshow: true, slideshowSpeed: 7000, animationSpeed: 600, initDelay: 0, randomize: false, pauseOnAction: true, pauseOnHover: false, useCSS: true, touch: true, video: false, controlNav: true, directionNav: true, prevText: "Previous", nextText: "Next", keyboard: true, multipleKeyboard: false, mousewheel: false, pausePlay: false, pauseText: "Pause", playText: "Play", controlsContainer: "", manualControls: "", sync: "", asNavFor: "", itemWidth: 0, itemMargin: 0, minItems: 0, maxItems: 0, move: 0, start: function(){}, before: function(){}, after: function(){}, end: function(){}, added: function(){}, removed: function(){}} $.fn.flexslider=function(options){ options=options||{}; if(typeof options==="object"){ return this.each(function(){ var $this=$(this), selector=(options.selector) ? options.selector:".slides > li", $slides=$this.find(selector); if($slides.length===1){ $slides.fadeIn(400); if(options.start) options.start($this); }else if($this.data('flexslider')===undefined){ new $.flexslider(this, options); }}); }else{ var $slider=$(this).data('flexslider'); switch (options){ case "play": $slider.play(); break; case "pause": $slider.pause(); break; case "next": $slider.flexAnimate($slider.getTarget("next"), true); break; case "prev": case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break; default: if(typeof options==="number") $slider.flexAnimate(options, true); }} }})(jQuery); ;(function($){ var plugin={}; var defaults={ mode: 'horizontal', slideSelector: '', infiniteLoop: true, hideControlOnEnd: false, speed: 500, easing: null, slideMargin: 0, startSlide: 0, randomStart: false, captions: false, ticker: false, tickerHover: false, adaptiveHeight: false, adaptiveHeightSpeed: 500, video: false, useCSS: true, preloadImages: 'visible', responsive: true, slideZIndex: 50, wrapperClass: 'bx-wrapper', touchEnabled: true, swipeThreshold: 50, oneToOneTouch: true, preventDefaultSwipeX: true, preventDefaultSwipeY: false, pager: true, pagerType: 'full', pagerShortSeparator: ' / ', pagerSelector: null, buildPager: null, pagerCustom: null, controls: true, nextText: 'Next', prevText: 'Prev', nextSelector: null, prevSelector: null, autoControls: false, startText: 'Start', stopText: 'Stop', autoControlsCombine: false, autoControlsSelector: null, auto: false, pause: 4000, autoStart: true, autoDirection: 'next', autoHover: false, autoDelay: 0, autoSlideForOnePage: false, minSlides: 1, maxSlides: 1, moveSlides: 0, slideWidth: 0, onSliderLoad: function(){}, onSlideBefore: function(){}, onSlideAfter: function(){}, onSlideNext: function(){}, onSlidePrev: function(){}, onSliderResize: function(){}} $.fn.bxSlider=function(options){ if(this.length==0) return this; if(this.length > 1){ this.each(function(){$(this).bxSlider(options)}); return this; } var slider={}; var el=this; plugin.el=this; var windowWidth=$(window).width(); var windowHeight=$(window).height(); var init=function(){ slider.settings=$.extend({}, defaults, options); slider.settings.slideWidth=parseInt(slider.settings.slideWidth); slider.children=el.children(slider.settings.slideSelector); if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides=slider.children.length; if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides=slider.children.length; if(slider.settings.randomStart) slider.settings.startSlide=Math.floor(Math.random() * slider.children.length); slider.active={ index: slider.settings.startSlide } slider.carousel=slider.settings.minSlides > 1||slider.settings.maxSlides > 1; if(slider.carousel) slider.settings.preloadImages='all'; slider.minThreshold=(slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); slider.maxThreshold=(slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); slider.working=false; slider.controls={}; slider.interval=null; slider.animProp=slider.settings.mode=='vertical' ? 'top':'left'; slider.usingCSS=slider.settings.useCSS&&slider.settings.mode!='fade'&&(function(){ var div=document.createElement('div'); var props=['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; for(var i in props){ if(div.style[props[i]]!==undefined){ slider.cssPrefix=props[i].replace('Perspective', '').toLowerCase(); slider.animProp='-' + slider.cssPrefix + '-transform'; return true; }} return false; }()); if(slider.settings.mode=='vertical') slider.settings.maxSlides=slider.settings.minSlides; el.data("origStyle", el.attr("style")); el.children(slider.settings.slideSelector).each(function(){ $(this).data("origStyle", $(this).attr("style")); }); setup(); } var setup=function(){ el.wrap('
    '); slider.viewport=el.parent(); slider.loader=$('
    '); slider.viewport.prepend(slider.loader); el.css({ width: slider.settings.mode=='horizontal' ? (slider.children.length * 100 + 215) + '%':'auto', position: 'relative' }); if(slider.usingCSS&&slider.settings.easing){ el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); }else if(!slider.settings.easing){ slider.settings.easing='swing'; } var slidesShowing=getNumberSlidesShowing(); slider.viewport.css({ width: '100%', overflow: 'hidden', position: 'relative' }); slider.viewport.parent().css({ maxWidth: getViewportMaxWidth() }); if(!slider.settings.pager){ slider.viewport.parent().css({ margin: '0 auto 0px' }); } slider.children.css({ 'float': slider.settings.mode=='horizontal' ? 'left':'none', listStyle: 'none', position: 'relative' }); slider.children.css('width', getSlideWidth()); if(slider.settings.mode=='horizontal'&&slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin); if(slider.settings.mode=='vertical'&&slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin); if(slider.settings.mode=='fade'){ slider.children.css({ position: 'absolute', zIndex: 0, display: 'none' }); slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); } slider.controls.el=$('
    '); if(slider.settings.captions) appendCaptions(); slider.active.last=slider.settings.startSlide==getPagerQty() - 1; if(slider.settings.video) el.fitVids(); var preloadSelector=slider.children.eq(slider.settings.startSlide); if(slider.settings.preloadImages=="all") preloadSelector=slider.children; if(!slider.settings.ticker){ if(slider.settings.pager) appendPager(); if(slider.settings.controls) appendControls(); if(slider.settings.auto&&slider.settings.autoControls) appendControlsAuto(); if(slider.settings.controls||slider.settings.autoControls||slider.settings.pager) slider.viewport.after(slider.controls.el); }else{ slider.settings.pager=false; } loadElements(preloadSelector, start); } var loadElements=function(selector, callback){ var total=selector.find('img, iframe').length; if(total==0){ callback(); return; } var count=0; selector.find('img, iframe').each(function(){ $(this).one('load', function(){ if(++count==total) callback(); }).each(function(){ if(this.complete) $(this).load(); }); }); } var start=function(){ if(slider.settings.infiniteLoop&&slider.settings.mode!='fade'&&!slider.settings.ticker){ var slice=slider.settings.mode=='vertical' ? slider.settings.minSlides:slider.settings.maxSlides; var sliceAppend=slider.children.slice(0, slice).clone().addClass('bx-clone'); var slicePrepend=slider.children.slice(-slice).clone().addClass('bx-clone'); el.append(sliceAppend).prepend(slicePrepend); } slider.loader.remove(); setSlidePosition(); if(slider.settings.mode=='vertical') slider.settings.adaptiveHeight=true; slider.viewport.height(getViewportHeight()); el.redrawSlider(); slider.settings.onSliderLoad(slider.active.index); slider.initialized=true; if(slider.settings.responsive) $(window).bind('resize', resizeWindow); if(slider.settings.auto&&slider.settings.autoStart&&(getPagerQty() > 1||slider.settings.autoSlideForOnePage)) initAuto(); if(slider.settings.ticker) initTicker(); if(slider.settings.pager) updatePagerActive(slider.settings.startSlide); if(slider.settings.controls) updateDirectionControls(); if(slider.settings.touchEnabled&&!slider.settings.ticker) initTouch(); } var getViewportHeight=function(){ var height=0; var children=$(); if(slider.settings.mode!='vertical'&&!slider.settings.adaptiveHeight){ children=slider.children; }else{ if(!slider.carousel){ children=slider.children.eq(slider.active.index); }else{ var currentIndex=slider.settings.moveSlides==1 ? slider.active.index:slider.active.index * getMoveBy(); children=slider.children.eq(currentIndex); for (i=1; i <=slider.settings.maxSlides - 1; i++){ if(currentIndex + i >=slider.children.length){ children=children.add(slider.children.eq(i - 1)); }else{ children=children.add(slider.children.eq(currentIndex + i)); }} }} if(slider.settings.mode=='vertical'){ children.each(function(index){ height +=$(this).outerHeight(); }); if(slider.settings.slideMargin > 0){ height +=slider.settings.slideMargin * (slider.settings.minSlides - 1); }}else{ height=Math.max.apply(Math, children.map(function(){ return $(this).outerHeight(false); }).get()); } if(slider.viewport.css('box-sizing')=='border-box'){ height +=parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); }else if(slider.viewport.css('box-sizing')=='padding-box'){ height +=parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); } return height; } var getViewportMaxWidth=function(){ var width='100%'; if(slider.settings.slideWidth > 0){ if(slider.settings.mode=='horizontal'){ width=(slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); }else{ width=slider.settings.slideWidth; }} return width; } var getSlideWidth=function(){ var newElWidth=slider.settings.slideWidth; var wrapWidth=slider.viewport.width(); if(slider.settings.slideWidth==0 || (slider.settings.slideWidth > wrapWidth&&!slider.carousel) || slider.settings.mode=='vertical'){ newElWidth=wrapWidth; }else if(slider.settings.maxSlides > 1&&slider.settings.mode=='horizontal'){ if(wrapWidth > slider.maxThreshold){ }else if(wrapWidth < slider.minThreshold){ newElWidth=(wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; }} return newElWidth; } var getNumberSlidesShowing=function(){ var slidesShowing=1; if(slider.settings.mode=='horizontal'&&slider.settings.slideWidth > 0){ if(slider.viewport.width() < slider.minThreshold){ slidesShowing=slider.settings.minSlides; }else if(slider.viewport.width() > slider.maxThreshold){ slidesShowing=slider.settings.maxSlides; }else{ var childWidth=slider.children.first().width() + slider.settings.slideMargin; slidesShowing=Math.floor((slider.viewport.width() + slider.settings.slideMargin) / childWidth); }}else if(slider.settings.mode=='vertical'){ slidesShowing=slider.settings.minSlides; } return slidesShowing; } var getPagerQty=function(){ var pagerQty=0; if(slider.settings.moveSlides > 0){ if(slider.settings.infiniteLoop){ pagerQty=Math.ceil(slider.children.length / getMoveBy()); }else{ var breakPoint=0; var counter=0 while (breakPoint < slider.children.length){ ++pagerQty; breakPoint=counter + getNumberSlidesShowing(); counter +=slider.settings.moveSlides <=getNumberSlidesShowing() ? slider.settings.moveSlides:getNumberSlidesShowing(); }} }else{ pagerQty=Math.ceil(slider.children.length / getNumberSlidesShowing()); } return pagerQty; } var getMoveBy=function(){ if(slider.settings.moveSlides > 0&&slider.settings.moveSlides <=getNumberSlidesShowing()){ return slider.settings.moveSlides; } return getNumberSlidesShowing(); } var setSlidePosition=function(){ if(slider.children.length > slider.settings.maxSlides&&slider.active.last&&!slider.settings.infiniteLoop){ if(slider.settings.mode=='horizontal'){ var lastChild=slider.children.last(); var position=lastChild.position(); setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); }else if(slider.settings.mode=='vertical'){ var lastShowingIndex=slider.children.length - slider.settings.minSlides; var position=slider.children.eq(lastShowingIndex).position(); setPositionProperty(-position.top, 'reset', 0); }}else{ var position=slider.children.eq(slider.active.index * getMoveBy()).position(); if(slider.active.index==getPagerQty() - 1) slider.active.last=true; if(position!=undefined){ if(slider.settings.mode=='horizontal') setPositionProperty(-position.left, 'reset', 0); else if(slider.settings.mode=='vertical') setPositionProperty(-position.top, 'reset', 0); }} } var setPositionProperty=function(value, type, duration, params){ if(slider.usingCSS){ var propValue=slider.settings.mode=='vertical' ? 'translate3d(0, ' + value + 'px, 0)':'translate3d(' + value + 'px, 0, 0)'; el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); if(type=='slide'){ el.css(slider.animProp, propValue); el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); updateAfterSlideTransition(); }); }else if(type=='reset'){ el.css(slider.animProp, propValue); }else if(type=='ticker'){ el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); el.css(slider.animProp, propValue); el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); setPositionProperty(params['resetValue'], 'reset', 0); tickerLoop(); }); }}else{ var animateObj={}; animateObj[slider.animProp]=value; if(type=='slide'){ el.animate(animateObj, duration, slider.settings.easing, function(){ updateAfterSlideTransition(); }); }else if(type=='reset'){ el.css(slider.animProp, value) }else if(type=='ticker'){ el.animate(animateObj, speed, 'linear', function(){ setPositionProperty(params['resetValue'], 'reset', 0); tickerLoop(); }); }} } var populatePager=function(){ var pagerHtml=''; var pagerQty=getPagerQty(); for(var i=0; i < pagerQty; i++){ var linkContent=''; if(slider.settings.buildPager&&$.isFunction(slider.settings.buildPager)){ linkContent=slider.settings.buildPager(i); slider.pagerEl.addClass('bx-custom-pager'); }else{ linkContent=i + 1; slider.pagerEl.addClass('bx-default-pager'); } pagerHtml +=''; }; slider.pagerEl.html(pagerHtml); } var appendPager=function(){ if(!slider.settings.pagerCustom){ slider.pagerEl=$('
    '); if(slider.settings.pagerSelector){ $(slider.settings.pagerSelector).html(slider.pagerEl); }else{ slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); } populatePager(); }else{ slider.pagerEl=$(slider.settings.pagerCustom); } slider.pagerEl.on('click', 'a', clickPagerBind); } var appendControls=function(){ slider.controls.next=$('' + slider.settings.nextText + ''); slider.controls.prev=$('' + slider.settings.prevText + ''); slider.controls.next.bind('click', clickNextBind); slider.controls.prev.bind('click', clickPrevBind); if(slider.settings.nextSelector){ $(slider.settings.nextSelector).append(slider.controls.next); } if(slider.settings.prevSelector){ $(slider.settings.prevSelector).append(slider.controls.prev); } if(!slider.settings.nextSelector&&!slider.settings.prevSelector){ slider.controls.directionEl=$('
    '); slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); }} var appendControlsAuto=function(){ slider.controls.start=$(''); slider.controls.stop=$(''); slider.controls.autoEl=$('
    '); slider.controls.autoEl.on('click', '.bx-start', clickStartBind); slider.controls.autoEl.on('click', '.bx-stop', clickStopBind); if(slider.settings.autoControlsCombine){ slider.controls.autoEl.append(slider.controls.start); }else{ slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); } if(slider.settings.autoControlsSelector){ $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); }else{ slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); } updateAutoControls(slider.settings.autoStart ? 'stop':'start'); } var appendCaptions=function(){ slider.children.each(function(index){ var title=$(this).find('img:first').attr('title'); if(title!=undefined&&('' + title).length){ $(this).append('
    ' + title + '
    '); }}); } var clickNextBind=function(e){ if(slider.settings.auto) el.stopAuto(); el.goToNextSlide(); e.preventDefault(); } var clickPrevBind=function(e){ if(slider.settings.auto) el.stopAuto(); el.goToPrevSlide(); e.preventDefault(); } var clickStartBind=function(e){ el.startAuto(); e.preventDefault(); } var clickStopBind=function(e){ el.stopAuto(); e.preventDefault(); } var clickPagerBind=function(e){ if(slider.settings.auto) el.stopAuto(); var pagerLink=$(e.currentTarget); if(pagerLink.attr('data-slide-index')!==undefined){ var pagerIndex=parseInt(pagerLink.attr('data-slide-index')); if(pagerIndex!=slider.active.index) el.goToSlide(pagerIndex); e.preventDefault(); }} var updatePagerActive=function(slideIndex){ var len=slider.children.length; if(slider.settings.pagerType=='short'){ if(slider.settings.maxSlides > 1){ len=Math.ceil(slider.children.length/slider.settings.maxSlides); } slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len); return; } slider.pagerEl.find('a').removeClass('active'); slider.pagerEl.each(function(i, el){ $(el).find('a').eq(slideIndex).addClass('active'); }); } var updateAfterSlideTransition=function(){ if(slider.settings.infiniteLoop){ var position=''; if(slider.active.index==0){ position=slider.children.eq(0).position(); }else if(slider.active.index==getPagerQty() - 1&&slider.carousel){ position=slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); }else if(slider.active.index==slider.children.length - 1){ position=slider.children.eq(slider.children.length - 1).position(); } if(position){ if(slider.settings.mode=='horizontal'){ setPositionProperty(-position.left, 'reset', 0); } else if(slider.settings.mode=='vertical'){ setPositionProperty(-position.top, 'reset', 0); }} } slider.working=false; slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); } var updateAutoControls=function(state){ if(slider.settings.autoControlsCombine){ slider.controls.autoEl.html(slider.controls[state]); }else{ slider.controls.autoEl.find('a').removeClass('active'); slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); }} var updateDirectionControls=function(){ if(getPagerQty()==1){ slider.controls.prev.addClass('disabled'); slider.controls.next.addClass('disabled'); }else if(!slider.settings.infiniteLoop&&slider.settings.hideControlOnEnd){ if(slider.active.index==0){ slider.controls.prev.addClass('disabled'); slider.controls.next.removeClass('disabled'); }else if(slider.active.index==getPagerQty() - 1){ slider.controls.next.addClass('disabled'); slider.controls.prev.removeClass('disabled'); }else{ slider.controls.prev.removeClass('disabled'); slider.controls.next.removeClass('disabled'); }} } var initAuto=function(){ if(slider.settings.autoDelay > 0){ var timeout=setTimeout(el.startAuto, slider.settings.autoDelay); }else{ el.startAuto(); } if(slider.settings.autoHover){ el.hover(function(){ if(slider.interval){ el.stopAuto(true); slider.autoPaused=true; }}, function(){ if(slider.autoPaused){ el.startAuto(true); slider.autoPaused=null; }}); }} var initTicker=function(){ var startPosition=0; if(slider.settings.autoDirection=='next'){ el.append(slider.children.clone().addClass('bx-clone')); }else{ el.prepend(slider.children.clone().addClass('bx-clone')); var position=slider.children.first().position(); startPosition=slider.settings.mode=='horizontal' ? -position.left:-position.top; } setPositionProperty(startPosition, 'reset', 0); slider.settings.pager=false; slider.settings.controls=false; slider.settings.autoControls=false; if(slider.settings.tickerHover&&!slider.usingCSS){ slider.viewport.hover(function(){ el.stop(); }, function(){ var totalDimens=0; slider.children.each(function(index){ totalDimens +=slider.settings.mode=='horizontal' ? $(this).outerWidth(true):$(this).outerHeight(true); }); var ratio=slider.settings.speed / totalDimens; var property=slider.settings.mode=='horizontal' ? 'left':'top'; var newSpeed=ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); tickerLoop(newSpeed); }); } tickerLoop(); } var tickerLoop=function(resumeSpeed){ speed=resumeSpeed ? resumeSpeed:slider.settings.speed; var position={left: 0, top: 0}; var reset={left: 0, top: 0}; if(slider.settings.autoDirection=='next'){ position=el.find('.bx-clone').first().position(); }else{ reset=slider.children.first().position(); } var animateProperty=slider.settings.mode=='horizontal' ? -position.left:-position.top; var resetValue=slider.settings.mode=='horizontal' ? -reset.left:-reset.top; var params={resetValue: resetValue}; setPositionProperty(animateProperty, 'ticker', speed, params); } var initTouch=function(){ slider.touch={ start: {x: 0, y: 0}, end: {x: 0, y: 0}} slider.viewport.bind('touchstart', onTouchStart); } var onTouchStart=function(e){ if(slider.working){ e.preventDefault(); }else{ slider.touch.originalPos=el.position(); var orig=e.originalEvent; slider.touch.start.x=orig.changedTouches[0].pageX; slider.touch.start.y=orig.changedTouches[0].pageY; slider.viewport.bind('touchmove', onTouchMove); slider.viewport.bind('touchend', onTouchEnd); }} var onTouchMove=function(e){ var orig=e.originalEvent; var xMovement=Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x); var yMovement=Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y); if((xMovement * 3) > yMovement&&slider.settings.preventDefaultSwipeX){ e.preventDefault(); }else if((yMovement * 3) > xMovement&&slider.settings.preventDefaultSwipeY){ e.preventDefault(); } if(slider.settings.mode!='fade'&&slider.settings.oneToOneTouch){ var value=0; if(slider.settings.mode=='horizontal'){ var change=orig.changedTouches[0].pageX - slider.touch.start.x; value=slider.touch.originalPos.left + change; }else{ var change=orig.changedTouches[0].pageY - slider.touch.start.y; value=slider.touch.originalPos.top + change; } setPositionProperty(value, 'reset', 0); }} var onTouchEnd=function(e){ slider.viewport.unbind('touchmove', onTouchMove); var orig=e.originalEvent; var value=0; slider.touch.end.x=orig.changedTouches[0].pageX; slider.touch.end.y=orig.changedTouches[0].pageY; if(slider.settings.mode=='fade'){ var distance=Math.abs(slider.touch.start.x - slider.touch.end.x); if(distance >=slider.settings.swipeThreshold){ slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide():el.goToPrevSlide(); el.stopAuto(); }}else{ var distance=0; if(slider.settings.mode=='horizontal'){ distance=slider.touch.end.x - slider.touch.start.x; value=slider.touch.originalPos.left; }else{ distance=slider.touch.end.y - slider.touch.start.y; value=slider.touch.originalPos.top; } if(!slider.settings.infiniteLoop&&((slider.active.index==0&&distance > 0)||(slider.active.last&&distance < 0))){ setPositionProperty(value, 'reset', 200); }else{ if(Math.abs(distance) >=slider.settings.swipeThreshold){ distance < 0 ? el.goToNextSlide():el.goToPrevSlide(); el.stopAuto(); }else{ setPositionProperty(value, 'reset', 200); }} } slider.viewport.unbind('touchend', onTouchEnd); } var resizeWindow=function(e){ if(!slider.initialized) return; var windowWidthNew=$(window).width(); var windowHeightNew=$(window).height(); if(windowWidth!=windowWidthNew||windowHeight!=windowHeightNew){ windowWidth=windowWidthNew; windowHeight=windowHeightNew; el.redrawSlider(); slider.settings.onSliderResize.call(el, slider.active.index); }} el.goToSlide=function(slideIndex, direction){ if(slider.working||slider.active.index==slideIndex) return; slider.working=true; slider.oldIndex=slider.active.index; if(slideIndex < 0){ slider.active.index=getPagerQty() - 1; }else if(slideIndex >=getPagerQty()){ slider.active.index=0; }else{ slider.active.index=slideIndex; } slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); if(direction=='next'){ slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); }else if(direction=='prev'){ slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); } slider.active.last=slider.active.index >=getPagerQty() - 1; if(slider.settings.pager) updatePagerActive(slider.active.index); if(slider.settings.controls) updateDirectionControls(); if(slider.settings.mode=='fade'){ if(slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()){ slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); } slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex+1).fadeIn(slider.settings.speed, function(){ $(this).css('zIndex', slider.settings.slideZIndex); updateAfterSlideTransition(); }); }else{ if(slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()){ slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); } var moveBy=0; var position={left: 0, top: 0}; if(!slider.settings.infiniteLoop&&slider.carousel&&slider.active.last){ if(slider.settings.mode=='horizontal'){ var lastChild=slider.children.eq(slider.children.length - 1); position=lastChild.position(); moveBy=slider.viewport.width() - lastChild.outerWidth(); }else{ var lastShowingIndex=slider.children.length - slider.settings.minSlides; position=slider.children.eq(lastShowingIndex).position(); }}else if(slider.carousel&&slider.active.last&&direction=='prev'){ var eq=slider.settings.moveSlides==1 ? slider.settings.maxSlides - getMoveBy():((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); var lastChild=el.children('.bx-clone').eq(eq); position=lastChild.position(); }else if(direction=='next'&&slider.active.index==0){ position=el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); slider.active.last=false; }else if(slideIndex >=0){ var requestEl=slideIndex * getMoveBy(); position=slider.children.eq(requestEl).position(); } if("undefined"!==typeof(position)){ var value=slider.settings.mode=='horizontal' ? -(position.left - moveBy):-position.top; setPositionProperty(value, 'slide', slider.settings.speed); }} } el.goToNextSlide=function(){ if(!slider.settings.infiniteLoop&&slider.active.last) return; var pagerIndex=parseInt(slider.active.index) + 1; el.goToSlide(pagerIndex, 'next'); } el.goToPrevSlide=function(){ if(!slider.settings.infiniteLoop&&slider.active.index==0) return; var pagerIndex=parseInt(slider.active.index) - 1; el.goToSlide(pagerIndex, 'prev'); } el.startAuto=function(preventControlUpdate){ if(slider.interval) return; slider.interval=setInterval(function(){ slider.settings.autoDirection=='next' ? el.goToNextSlide():el.goToPrevSlide(); }, slider.settings.pause); if(slider.settings.autoControls&&preventControlUpdate!=true) updateAutoControls('stop'); } el.stopAuto=function(preventControlUpdate){ if(!slider.interval) return; clearInterval(slider.interval); slider.interval=null; if(slider.settings.autoControls&&preventControlUpdate!=true) updateAutoControls('start'); } el.getCurrentSlide=function(){ return slider.active.index; } el.getCurrentSlideElement=function(){ return slider.children.eq(slider.active.index); } el.getSlideCount=function(){ return slider.children.length; } el.redrawSlider=function(){ slider.children.add(el.find('.bx-clone')).width(getSlideWidth()); slider.viewport.css('height', getViewportHeight()); if(!slider.settings.ticker) setSlidePosition(); if(slider.active.last) slider.active.index=getPagerQty() - 1; if(slider.active.index >=getPagerQty()) slider.active.last=true; if(slider.settings.pager&&!slider.settings.pagerCustom){ populatePager(); updatePagerActive(slider.active.index); }} el.destroySlider=function(){ if(!slider.initialized) return; slider.initialized=false; $('.bx-clone', this).remove(); slider.children.each(function(){ $(this).data("origStyle")!=undefined ? $(this).attr("style", $(this).data("origStyle")):$(this).removeAttr('style'); }); $(this).data("origStyle")!=undefined ? this.attr("style", $(this).data("origStyle")):$(this).removeAttr('style'); $(this).unwrap().unwrap(); if(slider.controls.el) slider.controls.el.remove(); if(slider.controls.next) slider.controls.next.remove(); if(slider.controls.prev) slider.controls.prev.remove(); if(slider.pagerEl&&slider.settings.controls) slider.pagerEl.remove(); $('.bx-caption', this).remove(); if(slider.controls.autoEl) slider.controls.autoEl.remove(); clearInterval(slider.interval); if(slider.settings.responsive) $(window).unbind('resize', resizeWindow); } el.reloadSlider=function(settings){ if(settings!=undefined) options=settings; el.destroySlider(); init(); } init(); return this; }})(jQuery); (function($){ jQuery(document).ready(function(){ $('.tk').click(function(){ link=$(this).attr('link'); window.location.href=link; }); $('.float-icon').click(function(){ if($(this).hasClass('show')){ $(this).removeClass('show'); }else{ $(this).addClass('show'); }}); $('.rev_slider ul li').append('
    '); $(".list-service li.add-1").last().prev().addClass("border-bottom"); $(".list-service li.add-2").last().prev().addClass("border-bottom"); $(".list-service li.add-1").last().prev().prev().addClass("border-bottom"); $('.current-menu-parent').addClass('current_page_item'); var isSafari=/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor); if($('.main_menu>ul>li').hasClass('current_page_item')){ $('.current_page_item').addClass('active'); var currentleft=$('.current_page_item').position().left +"px"; var currentwidth=$('.current_page_item').css('width'); var id=$('.current_page_item').attr('id'); console.log(id); if(isSafari){ var num=0; if(id=='menu-item-53'){ num=0; }else if(id=='menu-item-108'){ num=0; }else if(id=='menu-item-107'){ num=0; } var ps=$('.current_page_item').position().left -num; currentleft=ps +'px'; } $('.lamp').css({"left":currentleft,"width":currentwidth}); }else{ $('.main_menu>ul>li').first().addClass('active'); var currentleft=$('.active').position().left+"px"; var currentwidth=$('.active').css('width'); $('.lamp').css({"left":currentleft,"width":currentwidth}); } $('.main_menu>ul>li').hover(function(){ $('.main_menu ul li').removeClass('active'); $(this).addClass('active'); $('.lamp').addClass('sub-active'); $(this).find('.sub-menu').addClass('sub-active'); var currentleft=$('.active').position().left+"px"; var currentwidth=$('.active').css('width'); $('.lamp').css({"left":currentleft,"width":currentwidth}); },function(){ $('.sub-menu').stop(true,false).removeClass('sub-active', {duration:500}); $('.lamp').removeClass('sub-active'); if($('.main_menu>ul>li').hasClass('current_page_item')){ $('.current_page_item').addClass('active'); var currentleft=$('.current_page_item').position().left+"px"; var currentwidth=$('.current_page_item').css('width'); $('.lamp').css({"left":currentleft,"width":currentwidth}); }else{ $('.main_menu>ul>li').first().addClass('active'); var currentleft=$('.active').position().left+"px"; var currentwidth=$('.active').css('width'); $('.lamp').css({"left":currentleft,"width":currentwidth}); }}); $(window).resize(function(){ var currentleft=$('.active').position().left+"px"; var currentwidth=$('.active').css('width'); $('.lamp').css({"left":currentleft,"width":currentwidth}); }); $('.float-item').hover(function(){ $(this).addClass('show'); },function(){ $(this).removeClass('show'); }); $('#icon_menu a').click(function(e){ e.preventDefault(); $('.wrap_menu.visible_phone').slideToggle(); }); $('.caption-hover').click(function(){ var link=$(this).find('a').attr('href'); var op=$(this).css('opacity'); if(op==1){ window.location.href=link; }else{ return false; }}); $('.read-more').click(function(){ window.location.href=$(this).find('a').attr('href'); }); var regEx=/[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/g; var email=new Array(); $(".footer-info").filter(function(){ email=$(this).html().match(regEx); $.each(email, function(i, val){ arr=val.split('@'); $(".footer-right").html($(".footer-right").html().replace(val, ""+val+"")); }) }); var regEx=/[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/g; var email=new Array(); $(".address-infor").filter(function(){ email=$(this).html().match(regEx); $.each(email, function(i, val){ arr=val.split('@'); $(".address-infor").html($(".address-infor").html().replace(val, ""+val+"")); }) }); }); })(jQuery); $(window).load(function(){ }); function mailto(address){ document.location.href='mail'+'to:'+address; };